﻿namespace LigerMVC.Common
{
    using System;
    using System.ComponentModel;

    /// <summary>
    /// This interface exists only to hide the members of the System.Object class from the drop down
    /// </summary>
    /// 
    [EditorBrowsable(EditorBrowsableState.Never)]
    public interface IHideObjectMembers
    {
        /// <summary>
        /// Hide GetType since devs don't need to see this
        /// </summary>
        /// <returns></returns>
        /// 
        [EditorBrowsable(EditorBrowsableState.Never)]
        Type GetType();

        /// <summary>
        /// Hide this since it's not relevant
        /// </summary>
        /// <returns></returns>
        /// 
        [EditorBrowsable(EditorBrowsableState.Never)]
        int GetHashCode();

        /// <summary>
        /// Hide this since it's not relevant
        /// </summary>
        /// <returns></returns>
        /// 
        [EditorBrowsable(EditorBrowsableState.Never)]
        string ToString();

        /// <summary>
        /// Hide this since it's not relevant
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        /// 
        [EditorBrowsable(EditorBrowsableState.Never)]
        bool Equals(Object obj);
    }
}
